package com.nenude.corejava.ch10;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Vector;

class GenericCollection {

	public static void main(String[] args) {
		// 在大部分情况下一个集合只用于保存一类数据
		// 为了避免在获取数据时进行类型检查，可以使用泛型集合，在保存数据时进行类型检查
		// 使用泛型集合语法，在定义集合对象时，进行类型的声明，

		//List<Computer> list = new ArrayList<Computer>();
		//List<Computer> list=new  ArrayList<>();//jdk1.7后使用
		
		
		List<Computer> list=new  Vector<>();
		list.add(new Computer("Hp", 5000));
		list.add(new Computer("HW", 5700));
		list.add(new Computer("dell", 5900));

		// 错误实例：
		// 使用泛型集合号在保存数据时，进行类型检查，会产生类型检查异常；
		// list.add(new String("Hello Collection"));

		// 使用泛型集合取数据时，不需要进行类型转换
		// 取数据1
		for (Computer computer : list) {
			System.out.println(computer);
		}
		// 取数据2
		System.out.println("2-----------");
		Object obj = list.get(0);
		System.out.println(obj);
		
		
		// 取数据3
		System.out.println("3================");
		Iterator<Computer> iterator = list.iterator();
	
		while (iterator.hasNext()) {
			//使用泛型后，可以保障取数据时不会发生类型转换异常
			Computer computer = iterator.next();
			System.out.println(computer);

		}

	}

}
